Functions blocks with VAR_IN_OUT from version < 3.1.0 prevent the building of the application

Symptom: An application cannot be built and loaded onto the PLC. Instead, compiler errors are occurring.

Cause: You are using function blocks with in-out variables (= VAR_IN_OUT) that have been created in a Neuron Power Engineer version < 3.1.0.
Additional information:  The C-code required for →in-out variables within a function block has changed in Neuron Power Engineer version 3.1.0. 

Solution:

  • If the function blocks are your custom ST/FBD function blocks in a project, perform the following steps:

    1. Clean the project so that the required C-code is automatically generated based on the ST-/FBD-objects.

    2. Build the application.

    3. Load the application onto the PLC.

  • If the function blocks are ST/FBD function blocks provided within a library, contact the manufacturer of this library. Ask the manufacturer to install/start the current Neuron Power Engineer  version, to clean the project containing the library elements and then to create and deploy a new version of the library.
    As additional information on this problem: The function block has been specified by DEPLOY := OBJECT within the →library configuration. Due to this specification, the binary code for the function block is already required when the library is created. When creating the new version of the library, Neuron Power Engineer uses the binary code that has automatically been generated when the project has been cleaned.

  • If the function blocks are vendor function blocks (see →vendor block), contact the manufacturer of the vendor function block. Ask him/her to correct the H-file and the C-file for these vendor function blocks. The documentation "Administrator's Manual" contains information on what kind of corrections must be made within these files.
    (info) If the function blocks are vendor blocks provided within a library, the manufacturer must create and deploy a new version of the library as well.

Take care that there is only a restricted downwards compatibility after the above steps.
This means: The changed C-code for VAR_IN_OUT is valid starting with Neuron Power Engineer version 3.1.0. After the C-code has been created/adapted and you import the project in within a Neuron Power Engineer version < 3.1.0, compile errors will occur if building and loading the application onto the PLC when using this previous Neuron Power Engineer version. In such a case, perform the same steps as described above in the Neuron Power Engineer version < 3.1.0. If the affected blocks are provided within a library, the best practice is to install the previous version of this library that contains the previous C-code.